设计模式实战100例(Java/C++)
📚 共计 100 章节
01
单例模式 (Singleton)
饿汉式、懒汉式、双重检查锁、静态内部类、枚举实现,以及序列化破坏单例的解决方案。
创建型
多线程
02
工厂方法模式 (Factory Method)
定义产品接口、创建具体产品、实现工厂接口、创建具体工厂,以及参数化工厂方法。
创建型
解耦
03
抽象工厂模式 (Abstract Factory)
产品族概念、抽象工厂接口、具体工厂实现、产品等级结构,以及数据库访问层切换案例。
创建型
产品族
04
建造者模式 (Builder)
产品类、抽象建造者、具体建造者、指挥者,以及链式调用实现与不可变对象构建。
创建型
链式
05
原型模式 (Prototype)
浅克隆与深克隆、Cloneable接口、序列化实现深克隆,以及原型管理器与性能优化。
创建型
克隆
06
适配器模式 (Adapter)
类适配器(继承)、对象适配器(组合)、双向适配器,以及遗留系统接口适配案例。
结构型
兼容
07
桥接模式 (Bridge)
抽象化与实现化分离、独立维度扩展,以及跨平台图形绘制与消息发送案例。
结构型
多维
08
组合模式 (Composite)
透明组合与安全组合、叶子节点与容器节点,以及文件系统树形结构实现。
结构型
树形
09
装饰器模式 (Decorator)
抽象构件、具体构件、抽象装饰、具体装饰,以及Java I/O流中的装饰器应用。
结构型
增强
10
外观模式 (Facade)
子系统角色、外观角色、统一接口封装,以及三层架构中的Service层设计。
结构型
统一
11
享元模式 (Flyweight)
内部状态与外部状态、享元工厂、单纯享元与复合享元,以及连接池与字符串常量池。
结构型
共享
12
代理模式 (Proxy)
静态代理、JDK动态代理、CGLIB动态代理,以及AOP实现原理与延迟加载。
结构型
AOP
13
责任链模式 (Chain of Responsibility)
抽象处理者、具体处理者、链的组装,以及审批流程与过滤器链。
行为型
链式
14
命令模式 (Command)
命令接口、具体命令、接收者、调用者,以及撤销操作与宏命令实现。
行为型
撤销
15
解释器模式 (Interpreter)
抽象表达式、终结符表达式、非终结符表达式、上下文,以及数学表达式解析。
行为型
语法
16
迭代器模式 (Iterator)
迭代器接口、具体迭代器、聚合接口、具体聚合,以及Java集合框架中的迭代器。
行为型
遍历
17
中介者模式 (Mediator)
抽象中介者、具体中介者、同事类,以及聊天室与MVC中的Controller。
行为型
协调
18
备忘录模式 (Memento)
发起人、备忘录、管理者,以及游戏存档与撤销操作的实现。
行为型
快照
19
观察者模式 (Observer)
主题接口、具体主题、观察者接口、具体观察者,以及事件监听与发布订阅模型。
行为型
事件
20
状态模式 (State)
状态接口、具体状态、上下文,以及订单状态流转与电梯状态切换。
行为型
状态机
21
策略模式 (Strategy)
策略接口、具体策略、上下文,以及支付方式选择与排序算法切换。
行为型
算法
22
模板方法模式 (Template Method)
抽象模板、具体子类、钩子方法,以及JdbcTemplate与Servlet生命周期。
行为型
框架
23
访问者模式 (Visitor)
访问者接口、具体访问者、元素接口、具体元素、对象结构,以及编译器AST遍历。
行为型
遍历
24
设计模式六大原则 (SOLID)
单一职责、开闭原则、里氏替换、接口隔离、依赖倒置、迪米特法则。
原则
设计
25
简单工厂模式 (Simple Factory)
静态工厂方法、产品接口、具体产品,以及日志记录器创建案例。
创建型
静态
26
多例模式 (Multiton)
有限实例管理、实例池、线程安全实现,以及数据库连接池设计。
创建型
池
27
对象池模式 (Object Pool)
池化管理、借出与归还、线程安全,以及线程池与对象复用。
创建型
复用
28
空对象模式 (Null Object)
抽象接口、真实对象、空对象,以及避免空指针异常的优雅方案。
行为型
空安全
29
服务定位器模式 (Service Locator)
服务接口、具体服务、定位器、缓存,以及JNDI与依赖注入对比。
架构
定位
30
数据访问对象模式 (DAO)
实体类、DAO接口、DAO实现,以及JDBC与MyBatis中的DAO实践。
架构
数据
31
传输对象模式 (Transfer Object)
业务对象、传输对象、组装器,以及远程调用中的数据封装。
架构
DTO
32
前端控制器模式 (Front Controller)
控制器、调度器、视图,以及Spring MVC中的DispatcherServlet。
架构
Web
33
拦截过滤器模式 (Intercepting Filter)
过滤器接口、具体过滤器、过滤链,以及Web应用中的权限校验。
架构
过滤
34
MVC模式 (Model-View-Controller)
模型、视图、控制器,以及Spring MVC与Java Swing中的MVC。
架构
UI
35
业务代表模式 (Business Delegate)
业务服务、查找服务、委托,以及EJB与微服务中的客户端封装。
架构
封装
36
组合实体模式 (Composite Entity)
粗粒度对象、依赖对象、策略,以及Hibernate中的实体设计。
架构
实体
37
数据映射器模式 (Data Mapper)
映射器接口、具体映射器、实体对象,以及MyBatis中的Mapper原理。
架构
ORM
38
工作单元模式 (Unit of Work)
注册对象、脏检查、提交与回滚,以及JPA中的持久化上下文。
架构
事务
39
仓库模式 (Repository)
仓库接口、具体仓库、聚合根,以及DDD中的仓储设计。
架构
DDD
40
规格模式 (Specification)
规格接口、复合规格、业务规则组合,以及查询条件动态组装。
架构
规则
41
延迟加载模式 (Lazy Load)
延迟初始化、虚拟代理、值持有者、幽灵对象,以及Hibernate中的懒加载。
架构
性能
42
标识映射模式 (Identity Map)
映射表、对象标识、线程安全,以及一级缓存与二级缓存。
架构
缓存
43
查询对象模式 (Query Object)
查询构建器、条件封装、参数绑定,以及JPA Criteria API。
架构
查询
44
元数据映射模式 (Metadata Mapping)
元数据定义、映射引擎、代码生成,以及ORM框架的映射原理。
架构
元数据
45
类型对象模式 (Type Object)
类型定义、实例对象、类型共享,以及角色系统中的职业与技能。
架构
类型
46
属性模式 (Property)
动态属性、属性列表、类型安全,以及配置文件与动态表单。
架构
动态
47
委托模式 (Delegation)
委托接口、委托者、被委托者,以及事件处理与回调机制。
架构
回调
48
事件聚合器模式 (Event Aggregator)
事件源、事件监听器、聚合器,以及GUI中的事件管理。
架构
事件
49
调度器模式 (Scheduler)
任务接口、调度策略、执行引擎,以及定时任务与批处理框架。
架构
调度
50
断路器模式 (Circuit Breaker)
断路器状态(关闭/打开/半开)、熔断策略、恢复机制,以及微服务中的容错。
微服务
容错
51
重试模式 (Retry)
重试策略、退避算法、最大重试次数,以及网络请求的可靠重试。
微服务
可靠
52
舱壁模式 (Bulkhead)
线程池隔离、信号量隔离、资源分区,以及Hystrix中的舱壁实现。
微服务
隔离